// 使用mongoose提供的connect方法连接数据库
// 导入mongoose模块
const mongoose = require("mongoose");
// 连接数据库    connect('数据库地址',{选项}) ，如果没有这个数据库，它会自动创建
mongoose.connect('mongodb://localhost/nodeDB', {
    // 这个选项写了就不会提示版本废弃
    useNewUrlParser: true,
    useUnifiedTopology: true
})
    .then(() => {
        console.log('连接数据库成功');
    })
    .catch(err => {
        console.log('连接数据库失败', err);
    })

// 创建集合分为两步：
// 1、创建集合规则  mongoose.Schema({字段名:字段类型,字段名:字段类型,...})
const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    isPublished: Boolean
})
// 2、创建集合并应用规则  mongoose.model('集合的名称(首字母大写)',集合规则)
const Course = mongoose.model('Course', courseSchema)  // 它会在数据库中创建一个courses集合
// model方法会返回一个构造函数，用它创建文档

//创建文档的方式一
// 创建文档(插入数据)分为两步
// 1、创建集合实例
const course=new Course({
    name:'Node.js',
    author:'你好',
    isPublished:true
})
// 2、调用save方法将数据保存到数据库中
course.save();

/*
//创建文档的方式二：
//写法一
//向集合中插入文档 create({要向集合中插入的文档},回调函数)
Course.create({name:'java',author:'世界',isPublished:true},(err,result)=>{
    //如果插入失败，err就是错误信息，如果插入成功，err就是null
    if(err==null){
        //result 是结果,也就是刚刚插入的数据
        console.log(result);
    }
})
//写法二：
Course.create({name:'java',author:'世界',isPublished:true})
    .then(result=>console.log(result))
    .catch(err=>console.log(err))
*/